/**
 * @apiVersion 1.0.0
 * @apiGroup 用户
 * @api {POST} api/user/update 用户更新
 * @apiDescription 修改当前登录用户的数据
 * @apiName api/user/update
 * @apiExample {js} axios 例子:
 *  axios.post('http://39.105.38.34:8080/api/user/update', {
 *    password: '666666',
 *    nickname: '这是我的昵称啊',
 *    avatar: 'https://images.gmonking.com/meinv.png', // 一个图片地址
 *  });
 * @apiHeader {String} authorization 用户登录或注册成功时返回的 token
 * @apiParam {String} [password] 要修改成的密码
 * @apiParam {String} [nickname] 要修改成的昵称
 * @apiParam {String} [avatar] 要修改成的头像的图片地址
 * @apiSuccess (请求成功) {Object} user 用户信息
 * @apiuse  ErrorResponse
 */

const { update } = require('../../helper/db');
const { door, ok } = require('../../helper/util');

module.exports = async ctx => {
  var token = ctx.headers.authorization;
  var params = ctx.request.body;
  var user = await door(token);
  var user = await update('user', { ...user, ...params });

  ctx.body = ok({ user });
}
